﻿Imports Testeitor.DAL
Imports System.Data.SqlClient
Imports Testeitor.Entidades

Public Class RolDAO
    Inherits DAOBase

    Public Overrides Function commandActualizar(ByRef rol As EntityBase) As SqlCommand
        Dim cmd As New SqlCommand("UPDATE Rol SET nombre = @nombre, descripcion = @descripcion WHERE id = @id")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@nombre", DirectCast(rol, RolEntity).Nombre))
        cmd.Parameters.Add(New SqlParameter("@descripcion", DirectCast(rol, RolEntity).Descripcion))
        cmd.Parameters.Add(New SqlParameter("@id", rol.Id))
        commandActualizar = cmd
    End Function

    Public Overrides Function commandEliminar(ByVal id As Integer) As SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("DELETE FROM Rol WHERE id = @id")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@id", id))
        commandEliminar = cmd
    End Function

    Public Overrides Function commandInsertar(ByRef rol As EntityBase) As SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("INSERT INTO Rol VALUES(@nombre, @descripcion)")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@nombre", DirectCast(rol, RolEntity).Nombre))
        cmd.Parameters.Add(New SqlParameter("@descripcion", DirectCast(rol, RolEntity).Descripcion))
        commandInsertar = cmd
    End Function

    Public Overrides Function commandSeleccionar(ByVal id As Integer) As SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("SELECT * FROM Rol WHERE id = @id")
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@id", id))
        commandSeleccionar = cmd
    End Function

    Public Overrides Function commandSeleccionarWhere(ByVal where As String) As SqlCommand
        'Creo el Command con la consulta
        Dim cmd As New SqlCommand("SELECT * FROM Rol WHERE " + where)
        'Creo los parametros para la consulta
        cmd.Parameters.Add(New SqlParameter("@where", where))
        commandSeleccionarWhere = cmd
    End Function

    Public Overrides Function commandSeleccionarTodas() As SqlCommand
        Dim cmd As New SqlCommand("SELECT * FROM Rol")
        commandSeleccionarTodas = cmd
    End Function

    Public Overrides Function CargarEntidad(ByVal reader As IDataReader, ByRef stack As Stack(Of Integer)) As EntityBase
        Dim entidad As New RolEntity()

        Dim temp As Object
        'Campo Id
        entidad.Id = Convert.ToInt32(reader("id"))
        'Resto de los campos
        temp = reader("nombre")
        If temp.Equals(DBNull.Value) Then
            entidad.Nombre = String.Empty
        Else
            entidad.Nombre = Convert.ToString(reader("nombre"))
        End If

        temp = reader("descripcion")
        If temp.Equals(DBNull.Value) Then
            entidad.Descripcion = String.Empty
        Else
            entidad.Descripcion = Convert.ToString(reader("descripcion"))
        End If

        CargarEntidad = entidad
    End Function

    Public Overrides Sub CargarRelacion(ByRef entidad As Entidades.EntityBase, ByRef stack As Stack(Of Integer))

    End Sub
End Class
